/* 
 * File:   ProcessMessage.h
 * Author: dell
 *
 * Created on 2012年11月26日, 下午5:32
 */

#ifndef PROCESSMESSAGE_H
#define	PROCESSMESSAGE_H

#include "common.h"
#include <evhttp/libev.h>
#include <sys/msg.h>
//#include <evhttp/Timer.h>

namespace Rapid{
    class ProcessMessage{// : public Timer{
    public:
        /**
        * 打开或创建消息队列，如果消息队列存在，就打开消息队列，如果不存在，就创建消息队列
        */
        ProcessMessage();
        virtual ~ProcessMessage();

        bool open(const char* homedir);
        
        

        void close();

        bool isClosed();

        bool send(const void* data, size_t size);

        ssize_t receive(void* data, size_t size);

    //    protected:
    //        virtual bool onTimerEvent(const TimerEvent* e);      

    private:
        int key;
        int msdid;

        
        bool open(key_t key);
        
        //void readCallback(ev::& io, int revents);

    };
}
#endif	/* PROCESSMESSAGE_H */

